package com.huizu.goods.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.huizu.common.annotation.Excel;
import com.huizu.common.core.domain.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单主信息对象 shop_order
 * 
 * meidouhui
 * @date 2020-04-22
 */
public class ShopOrder extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/** 编号 */
	private Long id;

	/** memberId */
	private Long memberId;
	
	private Integer shopId;

	/** 会员姓名 */
	@Excel(name = "姓名")
	private String name;
	
	/** 订单编号 */
	private String orderCode;
	
	@Excel(name = "订单编号")
	private String subOrder;

	/** 总数量 */
	@Excel(name = "总数量")
	private Long totalNum;

	/** 总金额 */
	@Excel(name = "总金额")
	private BigDecimal totalPrice;

	/** 优惠金额 */
	@Excel(name = "优惠金额")
	private BigDecimal discountPrice;

	/** 实付金额 */
	@Excel(name = "实付金额")
	private BigDecimal actualPrice;

	/** 运费 */
	@Excel(name = "运费")
	private BigDecimal freight;

	/** 1微信支付 */
	//@Excel(name = "支付方式")
	private String payType;
	
	/** 物流 */
	private Long expressId;
	
	@Excel(name = "物流")
	private String expressTitle;

	/** 物流单号 */
	@Excel(name = "物流单号")
	private String expressNum;
	
	/** 收货人 */
	@Excel(name = "收货人")
	private String people;
	
	/** 联系电话 */
	@Excel(name = "联系电话")
	private String phone;
	
	@Excel(name = "地区")
	private String region;
	
	/** 收货地址 */
	@Excel(name = "收货地址")
	private String address;
	
	/** 付款时间 */
	@Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date payDate;

	/** 下单时间 */
	@Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date createDate;

	/** 支付时间 */
	private Date inTime;
	
	/** 退款时间 */
	private Date returnDate;

	/** 订单状态0待付款1待发货2待收货,3.已收货4退款审核5已退款 */
	@Excel(name = "订单状态0待付款1待发货2待收货,3.已收货4退款审核5已退款")
	private String orderStatus;
	
	/** 删除（假删） */
	private String delFalg;
	
	/** 详情**/
	@Excel(name = "详情")
	private List<ShopOrderDetail> detail;
	
	

	public Integer getShopId() {
		return shopId;
	}

	public void setShopId(Integer shopId) {
		this.shopId = shopId;
	}

	public Date getReturnDate() {
		return returnDate;
	}

	public void setReturnDate(Date returnDate) {
		this.returnDate = returnDate;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getId() {
		return id;
	}


	public Long getMemberId() {
		return memberId;
	}

	public void setMemberId(Long memberId) {
		this.memberId = memberId;
	}

	public String getSubOrder() {
		return subOrder;
	}

	public void setSubOrder(String subOrder) {
		this.subOrder = subOrder;
	}

	public String getRegion() {
		return region;
	}

	public void setRegion(String region) {
		this.region = region;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setOrderCode(String orderCode) {
		this.orderCode = orderCode;
	}

	public String getOrderCode() {
		return orderCode;
	}

	public void setTotalNum(Long totalNum) {
		this.totalNum = totalNum;
	}

	public Long getTotalNum() {
		return totalNum;
	}

	

	public BigDecimal getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(BigDecimal totalPrice) {
		this.totalPrice = totalPrice;
	}

	public BigDecimal getDiscountPrice() {
		return discountPrice;
	}

	public void setDiscountPrice(BigDecimal discountPrice) {
		this.discountPrice = discountPrice;
	}

	public BigDecimal getActualPrice() {
		return actualPrice;
	}

	public void setActualPrice(BigDecimal actualPrice) {
		this.actualPrice = actualPrice;
	}

	public BigDecimal getFreight() {
		return freight;
	}

	public void setFreight(BigDecimal freight) {
		this.freight = freight;
	}

	public void setPayType(String payType) {
		this.payType = payType;
	}

	public String getPayType() {
		return payType;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setInTime(Date inTime) {
		this.inTime = inTime;
	}

	public Date getInTime() {
		return inTime;
	}

	public void setPayDate(Date payDate) {
		this.payDate = payDate;
	}

	public Date getPayDate() {
		return payDate;
	}

	public void setOrderStatus(String orderStatus) {
		this.orderStatus = orderStatus;
	}

	public String getOrderStatus() {
		return orderStatus;
	}

	public void setExpressId(Long expressId) {
		this.expressId = expressId;
	}

	public Long getExpressId() {
		return expressId;
	}

	public String getExpressTitle() {
		return expressTitle;
	}

	public void setExpressTitle(String expressTitle) {
		this.expressTitle = expressTitle;
	}


	public String getExpressNum() {
		return expressNum;
	}

	public void setExpressNum(String expressNum) {
		this.expressNum = expressNum;
	}

	public void setDelFalg(String delFalg) {
		this.delFalg = delFalg;
	}

	public String getDelFalg() {
		return delFalg;
	}

	public String getPeople() {
		return people;
	}

	public void setPeople(String people) {
		this.people = people;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}


	public List<ShopOrderDetail> getDetail() {
		return detail;
	}

	public void setDetail(List<ShopOrderDetail> detail) {
		this.detail = detail;
	}


	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId())
				.append("openId", getMemberId()).append("orderCode", getOrderCode()).append("totalNum", getTotalNum())
				.append("totalPrice", getTotalPrice()).append("discountPrice", getDiscountPrice())
				.append("actualPrice", getActualPrice()).append("freight", getFreight())
				.append("payType", getPayType())
				.append("createDate", getCreateDate()).append("inTime", getInTime()).append("payDate", getPayDate())
				.append("orderStatus", getOrderStatus()).append("expressId", getExpressId())
				.append("expressNum", getExpressNum()).append("delFalg", getDelFalg())
				.toString();
	}
}
